From: Keir Fraser Date: Tue, 2 Oct 2007 09:01:10 +0000 (+0100) Subject: xend: Fix name/uuid uniqueness checks. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14929^2~7 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=01025319d169d8e08c947875a0a3e88064ea1762;p=xen.git xend: Fix name/uuid uniqueness checks. Signed-off-by: Daniel P. Berrange --- diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 6de4b2ff54..d341176899 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -74,9 +74,15 @@ def create(config): @return: An up and running XendDomainInfo instance @raise VmError: Invalid configuration or failure to start. """ - + from xen.xend import XendDomain + domconfig = XendConfig.XendConfig(sxp_obj = config) + othervm = XendDomain.instance().domain_lookup_nr(domconfig["name_label"]) + if othervm is None or othervm.domid is None: + othervm = XendDomain.instance().domain_lookup_nr(domconfig["uuid"]) + if othervm is not None and othervm.domid is not None: + raise VmError("Domain '%s' already exists with ID '%d'" % (domconfig["name_label"], othervm.domid)) log.debug("XendDomainInfo.create(%s)", scrub_password(config)) - vm = XendDomainInfo(XendConfig.XendConfig(sxp_obj = config)) + vm = XendDomainInfo(domconfig) try: vm.start() except: